home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagd_f.zip / EGAVGA.SWG / 0013_GOODFADE.PAS.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-28  |  1KB  |  59 lines

  1. {
  2. >I have a copy of the fade Unit and am having problems getting it to work
  3. >correctly. I want to fade my Programs screen on Exit, clear it, and show
  4. >the Dos screen.
  5.  
  6. Here's a little fade source, there're some change to made if you're using it in
  7. Graphic or Text mode.
  8. }
  9.  
  10. Uses
  11.   Crt;
  12.  
  13.  
  14. Var
  15.   count1, count2 : Integer;
  16.   pal1,pal2 : Array[0..255,0..2] of Byte;
  17.  
  18.  
  19. begin
  20.  
  21.   For count1 := 0 to 255 do           {Get the current palette}
  22.   begin
  23.     Port[$03C7] := count1;
  24.     pal1[count1,0] := Port[$03C9];
  25.     pal1[count1,1] := Port[$03C9];
  26.     pal1[count1,2] := Port[$03C9];
  27.   end;
  28.  
  29.   Pal2:=Pal1;
  30.  
  31.   For Count1 := 1 to 255 do           {this will fade the entire palette}
  32.   begin                               {20 must be enough in Text mode}
  33.     For Count2 := 0 to 255 do
  34.     begin
  35.       If Pal2[Count2,0] > 0 then
  36.         Dec(Pal2[Count2,0]);
  37.       If Pal2[Count2,1] > 0 then
  38.         Dec(Pal2[Count2,1]);
  39.       If Pal2[Count2,2] > 0 then
  40.         Dec(Pal2[Count2,2]);
  41.       Port[$03C8] := Count2;
  42.       Port[$03C9] := Pal2[Count2,0];
  43.       Port[$03C9] := Pal2[Count2,1];
  44.       Port[$03C9] := Pal2[Count2,2];
  45.     end;
  46.     Delay(40);         {Change the Delay For a quicker or slower fade}
  47.   end;
  48.  
  49.   For Count1 := 0 to 255 do   {Restore Original palette}
  50.   begin
  51.     Port[$03C8] := Count1;
  52.     Port[$03C9] := Pal1[Count1,0];
  53.     Port[$03C9] := Pal1[Count1,1];
  54.     Port[$03C9] := Pal1[Count1,2];
  55.   end;
  56.  
  57. end.
  58.  
  59.